The present invention relates to computer graphics. More specifically, the present invention relates to techniques for simulating the relative motion of objects. The present invention is also directed to providing animators with greater control over aspects of simulated objects associated with a character to produce proper changes in those elements even when the simulated objects are “pinched” between non-simulated objects, such as, for example, elements of the character.
Traditional animation techniques allow the animator to create the apparent motion of animated characters, to be viewed by a viewer of the animation. The use of computers to simplify the animation process has provided many benefits to the traditional hand-drawn process. Computer-animated characters are well known in the prior art and have been used in many different capacities. Such characters are utilized in traditional movies, videos, and online streaming of moving pictures, as well as interactive movies where the motion of characters is often initiated by a user.
Often times in the animation of characters, the characters have “simulated objects or elements,” such as clothing and hair, that are responsive to the main motion of the characters. The motions of some secondary or simulated elements in computer graphics imagery are often too complex for an animator to directly control. Instead of a human animator determining the motion of these simulated elements, computer programs use physically-based numerical methods that simulate the motion of these simulated elements (such as hair or cloth) over time.
This is accomplished by modeling the physical properties of these dynamic elements (how the cloth bends due to forces or collisions with solid objects, how the hair deforms or collides with itself, the external forces on these simulated objects (gravity, wind) and the motions of the non-simulated objects (for example, the characters that cloth rests on or that the hair grows out of). The animation of the non-simulated objects is provided by the animator and is independent of and unaffected by anything that the simulated objects do.
One of the hardest aspects of the computer simulation is making the simulated objects react appropriately to collisions with the non-simulated objects. A typical scenario is for an animator to animate the motions of a character, and then use a simulation to automatically produce motion for the character's clothing, for example. From the simulation program's viewpoint, the character's motion is predetermined; the simulation program's task is to make the clothing respond to collision and contact with the character as the character moves about.
Difficulties arise when the character's motion causes the simulated objects to become pinched between two or more surfaces of the character. Up until now, simulation programs have not been able to deal correctly with simulated objects caught in such pinch regions. Correcting the underlying animation so that it is free from physically unrealistic pinches is time-consuming for an animator, and often prohibitively expensive.
For example, consider a character having simulated pants. As the character squats, the simulated pants become pinched between regions near the character's knees. Typically, the character's legs actually intersect as she squats. This pinching behavior raises a serious problem: where should simulated particles pinched between intersecting objects go?
Prior art methods have not been able to remedy the problems discussed above. For example, MAYACLOTH, from Alias-Wavefront, owned by SGI of Toronto, Canada, is a software implemented 3D cloth modeler for dressing and animating 3D characters. Clothing parameters are controllable by parameters which allow for garments composed of multiple fabrics and the garments can respond to wind, gravity and the underlying motion of the characters.
However, MAYACLOTH tries to resolve pinching by letting the user arbitrarily pick one surface to pay attention to and ignoring the other surfaces. The program's attempts to work around the problem of pinching do not work very well.
Accordingly, what is desired are improved methods and apparatus for solving the problems discussed above, while reducing the drawbacks discussed above.